package com.aaa.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/**
 * @author ：Teacher陈（86521760@qq.com）
 * @date ：Created in 2024/11/14 9:58
 * @description：我的工具类
 * @modified By：
 * @version: 1.0
 */
public class MyTool {
    /**
     * @create by: Teacher陈
     * @description: 将date类型的时间转换成字符串类型
     * @create time: 2024/11/14 10:02
     * @param time
     * @return java.lang.String
     */
    public static String fromDateToString(Date time){
        //实例化一个SimpleDateFormat对象，按照“yyyy-MM-dd HH:mm:ss”的格式输出
        SimpleDateFormat sdf= new SimpleDateFormat(MyConstants.TIME_PARTNER);
        //format（）具备一种能力，能够将date类型的时间转换成String类型的时间
        String format = sdf.format(time);
        return format;
    }
    public static String fromLocalDateTimeToString(LocalDateTime time){
        //实例化一个DateTimeFormatter对象，按照“yyyy-MM-dd HH:mm:ss”的格式输出
        DateTimeFormatter dtf=DateTimeFormatter.ofPattern(MyConstants.TIME_PARTNER);
        //format（）具备一种能力，能够将date类型的时间转换成String类型的时间
        String format = time.format(dtf);
        return format;
    }
    /**
     * @create by: Teacher陈
     * @description: 将字符串转换成date
     * @create time: 2024/11/14 10:09
     * @param time
     * @return java.util.Date
     */
    public static Date fromStringToDate(String time) throws ParseException {
        //实例化一个SimpleDateFormat对象，按照“yyyy-MM-dd HH:mm:ss”的格式输出
        SimpleDateFormat sdf= new SimpleDateFormat(MyConstants.TIME_PARTNER);
        //将一个符合时间格式“yyyy-MM-dd HH:mm:ss”的字符串转换成date类型
        Date date=sdf.parse(time);
        return date;
    }
    /**
     * @create by: Teacher陈
     * @description: 将字符串转换成localdatedate
     * @create time: 2024/11/14 16:49
     * @param time
     * @return java.time.LocalDateTime
     */
    public static LocalDateTime fromStringToLocalDateTime(String time)  {

        //实例化一个SimpleDateFormat对象，按照“yyyy-MM-dd HH:mm:ss”的格式输出
        DateTimeFormatter dtf=DateTimeFormatter.ofPattern(MyConstants.TIME_PARTNER);
        //将一个符合时间格式“yyyy-MM-dd HH:mm:ss”的字符串转换成localdatetime类型
        LocalDateTime localDateTime=LocalDateTime.parse(time,dtf);
        return localDateTime;
    }
    /**
     * 将毫秒数转换成x小时x分x秒
     */
    public static String fromMillSecondToString(long millSecond){
        //一秒等于1000毫秒
        long seconds=millSecond/1000;
        //获取小时数(1小时等于3600秒)
        long hours=seconds/3600;
        //获取分钟（1分钟等于60秒）
        long minutes=(seconds%3600)/60;
        //计算剩余秒数
        long lastSeconds=seconds%60;
        return hours+"小时"+minutes+"分"+lastSeconds+"秒";
    }
}
